package com.zhou.bpm.service;

import com.zhou.bpm.domain.dto.ApproveRequestDto;
import com.zhou.bpm.domain.dto.InstanceRequestDto;
import com.zhou.bpm.entity.BpmInstance;

/**
 * @Author: zhoujinchuan
 * @Description: TODO（流程流转service）
 * @CreateTime: 2023/10/25 14:03
 */
public interface IProcessFlowService {

    /**
     * 流程发起
     * @param instanceRequestDto
     * @return
     */
    BpmInstance createInstance(InstanceRequestDto instanceRequestDto,String instanceName);

    /**
     * 流程发起
     * @param instanceRequestDto
     * @return
     */
    BpmInstance createInstance(InstanceRequestDto instanceRequestDto);


    /**
     * 流程审批接口（return 下一个节点的orderNum,-1代表流程结束）
     * @param approveRequestDto
     * @return
     */
    Integer approveTask(ApproveRequestDto approveRequestDto);

    /**
     * 创建任务
     *
     * @param id
     * @param processCode
     * @param currentNodeCode
     */
    Integer createTask(Integer id, String processCode, String currentNodeCode);
}
